package com.sq.shortlink.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sq.shortlink.admin.dao.entity.GroupDO;
import com.sq.shortlink.admin.dto.req.ShortLinkGroupDeleteReq;
import com.sq.shortlink.admin.dto.req.ShortLinkGroupRespDTO;
import com.sq.shortlink.admin.dto.req.ShortLinkGroupSortReq;
import com.sq.shortlink.admin.dto.req.ShortLinkGroupUpdateReq;

import java.util.List;

/**
 * 短链接分组接口层
 * @author quan
 */
public interface GroupService extends IService<GroupDO> {

    /**
     * 新增短链接分组
     * @param name 分组名
     */
    void saveGroup(String name);

    /**
     * 新增短链接分组
     * @param username 用户名
     * @param name 分组名
     */
    void saveGroup(String username,String name);

    /**
     * 返回短链接分组集合
     * @return 短链接分组集合
     */
    List<ShortLinkGroupRespDTO> listGroup();

    /**
     * 修改短链接分组名称
     * @param requestParam 短链接分组修改参数
     */
    void updateGroup(ShortLinkGroupUpdateReq requestParam);

    /**
     * 删除短链接分组
     * @param requestParam 短链接分组删除参数
     */
    void deleteGroup(ShortLinkGroupDeleteReq requestParam);

    /**
     * 修改短链接分组排序
     * @param requestParam 短链接分组排序参数
     */
    void updateGroupSort(List<ShortLinkGroupSortReq> requestParam);
}
